<html>
<body>
报告缺少取消检查的循环、类似 <code>forEach</code> 的方法，以及 <code>ContainerUtil.process()</code>。
<p>仅在具有 <code>com.intellij.util.concurrency.annotations.RequiresReadLock</code> 注解的方法内运行。</p>
<p><b>示例：</b></p>
<pre><code lang="kotlin">
@RequiresReadLock
fun doSomething() {
  ...
  for (item in items) {
        ProgressManager.checkCanceled() // 应该出现在第一行中
    ...
  }

  items.forEach {
    ProgressManager.checkCanceled() // 应该出现在第一行中
    ...
  }
  ...
}
</code></pre>

<p>在嵌套循环之间没有任何内容的情况下：</p>
<pre><code lang="kotlin">
@RequiresReadLock
fun doSomething() {
  ...
  for (item in items) {
        // 之间没有任何内容
        for (inner in item.inners) {
            ProgressManager.checkCanceled() // 应仅出现在内部循环的第一行中
      ...
    }
  }
  ...
}
</code></pre>
<p>
    在阻塞上下文中应使用 <code>com.intellij.openapi.progress.ProgressManager.checkCanceled()</code>，而在挂起上下文中应使用 <code>com.intellij.openapi.progress.CoroutinesKt.checkCancelled()</code>。
</p>
<p>
    如需了解详情，请参阅 IntelliJ 平台插件 SDK 文档中的<a href="https://plugins.jetbrains.com/docs/intellij/background-processes.html#cancellation">后台进程取消</a>。
</p>

<!-- tooltip end -->
<p><small>2023.1 最新变化</small>
</body>
</html>
